﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Bootstrap5.Design
{

    public interface IFlexOrderDefinition : IBreakPointDefinition<IFlexDecorator>
    {
        IFlexDecorator OrderFirst { get; }
        IFlexDecorator OrderLast { get; }
        IFlexDecorator Order0 { get; }
        IFlexDecorator Order1 { get; }
        IFlexDecorator Order2 { get; }
        IFlexDecorator Order3 { get; }
        IFlexDecorator Order4 { get; }
        IFlexDecorator Order5 { get; }
    }

    public interface IFlexGrowDefinition : IBreakPointDefinition<IFlexDecorator>
    {
        IFlexDecorator Grow { get; }
        IFlexDecorator NoGrow { get; }
    }

    public interface IFlexShrinkDefinition : IBreakPointDefinition<IFlexDecorator>
    {
        IFlexDecorator Shrink { get; }
        IFlexDecorator NoShrink { get; }
    }

    public interface IFlexDirectionDefinition : IBreakPointDefinition<IFlexDecorator>
    {
        IFlexDecorator Row { get; }
        IFlexDecorator RowReserve { get; }
        IFlexDecorator Column { get; }
        IFlexDecorator ColumnReserve { get; }
    }

    public interface IFlexAlignmentDefinition : IBreakPointDefinition<IFlexDecorator>
    {
        IFlexDecorator JustifyContentStart { get; }
        IFlexDecorator JustifyContentEnd { get; }
        IFlexDecorator JustifyContentCenter { get; }
        IFlexDecorator JustifyContentBetween { get; }
        IFlexDecorator JustifyContentAround { get; }
        IFlexDecorator JustifyContentEvenly { get; }
        IFlexDecorator AlignItemsStart { get; }
        IFlexDecorator AlignItemsEnd { get; }
        IFlexDecorator AlignItemsCenter { get; }
        IFlexDecorator AlignItemsBaseline { get; }
        IFlexDecorator AlignItemsStretch { get; }
        IFlexDecorator AlignSelfStart { get; }
        IFlexDecorator AlignSelfEnd { get; }
        IFlexDecorator AlignSelfCenter { get; }
        IFlexDecorator AlignSelfBaseline { get; }
        IFlexDecorator AlignSelfStretch { get; }
        IFlexDecorator AlignContentStart { get; }
        IFlexDecorator AlignContentEnd { get; }
        IFlexDecorator AlignContentCenter { get; }
        IFlexDecorator AlignContentAround { get; }
        IFlexDecorator AlignContentStretch { get; }
    }


    public interface IFlexFillDefinition : IBreakPointDefinition<IFlexDecorator>
    {
        IFlexDecorator Fill { get; }
    }


    public interface IFlexWrapperDefinition : IBreakPointDefinition<IFlexDecorator>
    {
        IFlexDecorator Wrap { get; }
        IFlexDecorator WrapReserve { get; }
        IFlexDecorator NoWrap { get; }
        IFlexDecorator NoWrapReserve { get; }
    }

}
namespace Bootstrap5
{
    using Design;
    public interface IFlexDecorator : IClassDecoratorProvider, IFlexFillDefinition, IFlexAlignmentDefinition, IFlexDirectionDefinition, IFlexShrinkDefinition, IFlexGrowDefinition, IFlexOrderDefinition, IFlexWrapperDefinition
    {
    }
}